package com.ourteam.product.requirement.dao;

import net.dao.BaseQueryBean;
import net.dao.BaseWhereCriterion;
import net.dao.IDataAccessInterface;

import org.apache.commons.lang.StringUtils;

import java.util.Arrays;
import java.util.List;
import java.util.Map;


/**
 * Template Name : DAO查询对象
 * Template Version : 1
 * Template Last Modfiy Date : Sat Aug 19 10:06:32 CST 2017
 * Auto Generate Date : 2018-05-03 16:45:35
  * Warning ! This file will be overwrite when regenerate !
  *
 */
public class ProductIssueAttachDAOQueryBean extends BaseQueryBean {
    public ProductIssueAttachDAOQueryBean() {
        super();
    }

    public ProductIssueAttachDAOQueryBean(BaseQueryBean aQueryBean) {
        super(aQueryBean);
    }

    public ProductIssueAttachDAOQueryBean(BaseQueryBean aQueryBean,
        Map tableReplaceMap) {
        super(aQueryBean, tableReplaceMap);
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();

        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }

        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        return new Criteria(this);
    }

    public void addIdSelectProperty() {
        addIdSelectProperty("id");
    }

    public void addIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueAttachDAO.Id, aAlias);
        } else {
            addSelectProperty(IProductIssueAttachDAO.Id, "id");
        }
    }

    public void addIssueIdSelectProperty() {
        addIssueIdSelectProperty("issueId");
    }

    public void addIssueIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueAttachDAO.IssueId, aAlias);
        } else {
            addSelectProperty(IProductIssueAttachDAO.IssueId, "issueId");
        }
    }

    public void addAttachFileNameSelectProperty() {
        addAttachFileNameSelectProperty("attachFileName");
    }

    public void addAttachFileNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueAttachDAO.AttachFileName, aAlias);
        } else {
            addSelectProperty(IProductIssueAttachDAO.AttachFileName,
                "attachFileName");
        }
    }

    public void addAttachFilePathSelectProperty() {
        addAttachFilePathSelectProperty("attachFilePath");
    }

    public void addAttachFilePathSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueAttachDAO.AttachFilePath, aAlias);
        } else {
            addSelectProperty(IProductIssueAttachDAO.AttachFilePath,
                "attachFilePath");
        }
    }

    public void addUploadTimeSelectProperty() {
        addUploadTimeSelectProperty("uploadTime");
    }

    public void addUploadTimeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueAttachDAO.UploadTime, aAlias);
        } else {
            addSelectProperty(IProductIssueAttachDAO.UploadTime, "uploadTime");
        }
    }

    public void addUploadUserIdSelectProperty() {
        addUploadUserIdSelectProperty("uploadUserId");
    }

    public void addUploadUserIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueAttachDAO.UploadUserId, aAlias);
        } else {
            addSelectProperty(IProductIssueAttachDAO.UploadUserId,
                "uploadUserId");
        }
    }

    public void addStatusSelectProperty() {
        addStatusSelectProperty("status");
    }

    public void addStatusSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueAttachDAO.Status, aAlias);
        } else {
            addSelectProperty(IProductIssueAttachDAO.Status, "status");
        }
    }

    public void addRemarksSelectProperty() {
        addRemarksSelectProperty("remarks");
    }

    public void addRemarksSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueAttachDAO.Remarks, aAlias);
        } else {
            addSelectProperty(IProductIssueAttachDAO.Remarks, "remarks");
        }
    }

    public void addUploadUserNameSelectProperty() {
        addUploadUserNameSelectProperty("uploadUserName");
    }

    public void addUploadUserNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueAttachDAO.UploadUserName, aAlias);
        } else {
            addSelectProperty(IProductIssueAttachDAO.UploadUserName,
                "uploadUserName");
        }
    }

    public void addUploadUserPhotoSelectProperty() {
        addUploadUserPhotoSelectProperty("uploadUserPhoto");
    }

    public void addUploadUserPhotoSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueAttachDAO.UploadUserPhoto, aAlias);
        } else {
            addSelectProperty(IProductIssueAttachDAO.UploadUserPhoto,
                "uploadUserPhoto");
        }
    }

    public void addAllSelectProperties() {
        addIdSelectProperty();

        addIssueIdSelectProperty();

        addAttachFileNameSelectProperty();

        addAttachFilePathSelectProperty();

        addUploadTimeSelectProperty();

        addUploadUserIdSelectProperty();

        addStatusSelectProperty();

        addRemarksSelectProperty();

        addUploadUserNameSelectProperty();

        addUploadUserPhotoSelectProperty();
    }

    public static class Criteria extends BaseWhereCriterion<ProductIssueAttachDAOQueryBean> {
        protected Criteria(ProductIssueAttachDAOQueryBean aParentObject) {
            super(aParentObject);
        }

        public Criteria andIdIsNull() {
            addCriterion(IProductIssueAttachDAO.Id + " is null");

            return this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion(IProductIssueAttachDAO.Id + " is not null");

            return this;
        }

        public Criteria andIdIsNotEmpty() {
            addCriterion(IProductIssueAttachDAO.Id + " is not null AND " +
                IProductIssueAttachDAO.Id + " <> ''");

            return this;
        }

        public Criteria andIdIsEmpty() {
            addCriterion("(" + IProductIssueAttachDAO.Id + " is null OR " +
                IProductIssueAttachDAO.Id + " = '')");

            return this;
        }

        public Criteria andIdEqualTo(long value) {
            return andIdEqualTo(Long.valueOf(value));
        }

        public Criteria andIdEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueAttachDAO.Id + " = ", value, "id");

            return this;
        }

        public Criteria andIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.Id);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Id + " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdNotEqualTo(long value) {
            return andIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueAttachDAO.Id + " <>", value, "id");

            return this;
        }

        public Criteria andIdNotEqualToOrIsNull(long value) {
            return andIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductIssueAttachDAO.Id + " is null OR " +
                IProductIssueAttachDAO.Id + " <>", value, "id");

            return this;
        }

        public Criteria andIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.Id);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Id + " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdGreaterThan(long value) {
            return andIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductIssueAttachDAO.Id + " >", value, "id");

            return this;
        }

        public Criteria andIdGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.Id);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Id + " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdGreaterThanOrEqualTo(long value) {
            return andIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueAttachDAO.Id + " >=", value, "id");

            return this;
        }

        public Criteria andIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.Id);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdGreaterThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Id + " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdLessThan(long value) {
            return andIdLessThan(Long.valueOf(value));
        }

        public Criteria andIdLessThan(java.lang.Long value) {
            addCriterion(IProductIssueAttachDAO.Id + " <", value, "id");

            return this;
        }

        public Criteria andIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.Id);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Id + " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdLessThanOrEqualTo(long value) {
            return andIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueAttachDAO.Id + " <=", value, "id");

            return this;
        }

        public Criteria andIdLessThanOrEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.Id);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Id + " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdIn(long[] values) {
            if (values.length == 1) {
                return andIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.Id + " in", values, "id");

                return this;
            }
        }

        public Criteria andIdNotIn(long[] values) {
            if (values.length == 1) {
                return andIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.Id + " not in", values, "id");

                return this;
            }
        }

        public Criteria andIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueAttachDAO.Id + " in", values, "id");

                return this;
            }
        }

        public Criteria andIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueAttachDAO.Id + " not in", values, "id");

                return this;
            }
        }

        public Criteria andIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIdEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.Id + " in",
                    Arrays.asList(values), "id");

                return this;
            }
        }

        public Criteria andIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.Id + " not in",
                    Arrays.asList(values), "id");

                return this;
            }
        }

        public Criteria andIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Id + " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Id + " not in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIdBetween(long value1, long value2) {
            addCriterion(IProductIssueAttachDAO.Id + " between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueAttachDAO.Id + " between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdNotBetween(long value1, long value2) {
            addCriterion(IProductIssueAttachDAO.Id + " not between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueAttachDAO.Id + " not between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIssueIdIsNull() {
            addCriterion(IProductIssueAttachDAO.IssueId + " is null");

            return this;
        }

        public Criteria andIssueIdIsNotNull() {
            addCriterion(IProductIssueAttachDAO.IssueId + " is not null");

            return this;
        }

        public Criteria andIssueIdIsNotEmpty() {
            addCriterion(IProductIssueAttachDAO.IssueId + " is not null AND " +
                IProductIssueAttachDAO.IssueId + " <> ''");

            return this;
        }

        public Criteria andIssueIdIsEmpty() {
            addCriterion("(" + IProductIssueAttachDAO.IssueId + " is null OR " +
                IProductIssueAttachDAO.IssueId + " = '')");

            return this;
        }

        public Criteria andIssueIdEqualTo(long value) {
            return andIssueIdEqualTo(Long.valueOf(value));
        }

        public Criteria andIssueIdEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueAttachDAO.IssueId + " = ", value,
                "issueId");

            return this;
        }

        public Criteria andIssueIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.IssueId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.IssueId + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssueIdNotEqualTo(long value) {
            return andIssueIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andIssueIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueAttachDAO.IssueId + " <>", value,
                "issueId");

            return this;
        }

        public Criteria andIssueIdNotEqualToOrIsNull(long value) {
            return andIssueIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andIssueIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductIssueAttachDAO.IssueId + " is null OR " +
                IProductIssueAttachDAO.IssueId + " <>", value, "issueId");

            return this;
        }

        public Criteria andIssueIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.IssueId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.IssueId + " <> ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssueIdGreaterThan(long value) {
            return andIssueIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andIssueIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductIssueAttachDAO.IssueId + " >", value, "issueId");

            return this;
        }

        public Criteria andIssueIdGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.IssueId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.IssueId + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssueIdGreaterThanOrEqualTo(long value) {
            return andIssueIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIssueIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueAttachDAO.IssueId + " >=", value,
                "issueId");

            return this;
        }

        public Criteria andIssueIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.IssueId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.IssueId + " >= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssueIdLessThan(long value) {
            return andIssueIdLessThan(Long.valueOf(value));
        }

        public Criteria andIssueIdLessThan(java.lang.Long value) {
            addCriterion(IProductIssueAttachDAO.IssueId + " <", value, "issueId");

            return this;
        }

        public Criteria andIssueIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.IssueId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.IssueId + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssueIdLessThanOrEqualTo(long value) {
            return andIssueIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIssueIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueAttachDAO.IssueId + " <=", value,
                "issueId");

            return this;
        }

        public Criteria andIssueIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.IssueId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.IssueId + " <= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssueIdIn(long[] values) {
            if (values.length == 1) {
                return andIssueIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.IssueId + " in", values,
                    "issueId");

                return this;
            }
        }

        public Criteria andIssueIdNotIn(long[] values) {
            if (values.length == 1) {
                return andIssueIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.IssueId + " not in",
                    values, "issueId");

                return this;
            }
        }

        public Criteria andIssueIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIssueIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueAttachDAO.IssueId + " in", values,
                    "issueId");

                return this;
            }
        }

        public Criteria andIssueIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIssueIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueAttachDAO.IssueId + " not in",
                    values, "issueId");

                return this;
            }
        }

        public Criteria andIssueIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIssueIdEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.IssueId + " in",
                    Arrays.asList(values), "issueId");

                return this;
            }
        }

        public Criteria andIssueIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIssueIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.IssueId + " not in",
                    Arrays.asList(values), "issueId");

                return this;
            }
        }

        public Criteria andIssueIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.IssueId + " in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssueIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.IssueId + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIssueIdBetween(long value1, long value2) {
            addCriterion(IProductIssueAttachDAO.IssueId + " between", value1,
                value2, "issueId");

            return this;
        }

        public Criteria andIssueIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueAttachDAO.IssueId + " between", value1,
                value2, "issueId");

            return this;
        }

        public Criteria andIssueIdNotBetween(long value1, long value2) {
            addCriterion(IProductIssueAttachDAO.IssueId + " not between",
                value1, value2, "issueId");

            return this;
        }

        public Criteria andIssueIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueAttachDAO.IssueId + " not between",
                value1, value2, "issueId");

            return this;
        }

        public Criteria andAttachFileNameIsNull() {
            addCriterion(IProductIssueAttachDAO.AttachFileName + " is null");

            return this;
        }

        public Criteria andAttachFileNameIsNotNull() {
            addCriterion(IProductIssueAttachDAO.AttachFileName +
                " is not null");

            return this;
        }

        public Criteria andAttachFileNameIsNotEmpty() {
            addCriterion(IProductIssueAttachDAO.AttachFileName +
                " is not null AND " + IProductIssueAttachDAO.AttachFileName +
                " <> ''");

            return this;
        }

        public Criteria andAttachFileNameIsEmpty() {
            addCriterion("(" + IProductIssueAttachDAO.AttachFileName +
                " is null OR " + IProductIssueAttachDAO.AttachFileName +
                " = '')");

            return this;
        }

        public Criteria andAttachFileNameEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.AttachFileName + " = ", value,
                "attachFileName");

            return this;
        }

        public Criteria andAttachFileNameEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.AttachFileName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAttachFileNameEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.AttachFileName + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAttachFileNameNotEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.AttachFileName + " <>", value,
                "attachFileName");

            return this;
        }

        public Criteria andAttachFileNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductIssueAttachDAO.AttachFileName +
                " is null OR " + IProductIssueAttachDAO.AttachFileName + " <>",
                value, "attachFileName");

            return this;
        }

        public Criteria andAttachFileNameNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.AttachFileName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAttachFileNameNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.AttachFileName + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAttachFileNameGreaterThan(String value) {
            addCriterion(IProductIssueAttachDAO.AttachFileName + " >", value,
                "attachFileName");

            return this;
        }

        public Criteria andAttachFileNameGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.AttachFileName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAttachFileNameGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.AttachFileName + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAttachFileNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.AttachFileName + " >=", value,
                "attachFileName");

            return this;
        }

        public Criteria andAttachFileNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.AttachFileName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAttachFileNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.AttachFileName + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAttachFileNameLessThan(String value) {
            addCriterion(IProductIssueAttachDAO.AttachFileName + " <", value,
                "attachFileName");

            return this;
        }

        public Criteria andAttachFileNameLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.AttachFileName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAttachFileNameLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.AttachFileName + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAttachFileNameLessThanOrEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.AttachFileName + " <=", value,
                "attachFileName");

            return this;
        }

        public Criteria andAttachFileNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.AttachFileName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAttachFileNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.AttachFileName + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAttachFileNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueAttachDAO.AttachFileName + " like",
                buffer.toString(), "attachFileName");

            return this;
        }

        public Criteria andAttachFileNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueAttachDAO.AttachFileName + " not like",
                buffer.toString(), "attachFileName");

            return this;
        }

        public Criteria andAttachFileNameIn(List<String> values) {
            if (values.size() == 1) {
                return andAttachFileNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueAttachDAO.AttachFileName + " in",
                    values, "attachFileName");

                return this;
            }
        }

        public Criteria andAttachFileNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andAttachFileNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueAttachDAO.AttachFileName + " not in",
                    values, "attachFileName");

                return this;
            }
        }

        public Criteria andAttachFileNameIn(String[] values) {
            if (values.length == 1) {
                return andAttachFileNameEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.AttachFileName + " in",
                    Arrays.asList(values), "attachFileName");

                return this;
            }
        }

        public Criteria andAttachFileNameNotIn(String[] values) {
            if (values.length == 1) {
                return andAttachFileNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.AttachFileName + " not in",
                    Arrays.asList(values), "attachFileName");

                return this;
            }
        }

        public Criteria andAttachFileNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.AttachFileName + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAttachFileNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.AttachFileName + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAttachFileNameBetween(String value1, String value2) {
            addCriterion(IProductIssueAttachDAO.AttachFileName + " between",
                value1, value2, "attachFileName");

            return this;
        }

        public Criteria andAttachFileNameNotBetween(String value1, String value2) {
            addCriterion(IProductIssueAttachDAO.AttachFileName +
                " not between", value1, value2, "attachFileName");

            return this;
        }

        public Criteria andAttachFilePathIsNull() {
            addCriterion(IProductIssueAttachDAO.AttachFilePath + " is null");

            return this;
        }

        public Criteria andAttachFilePathIsNotNull() {
            addCriterion(IProductIssueAttachDAO.AttachFilePath +
                " is not null");

            return this;
        }

        public Criteria andAttachFilePathIsNotEmpty() {
            addCriterion(IProductIssueAttachDAO.AttachFilePath +
                " is not null AND " + IProductIssueAttachDAO.AttachFilePath +
                " <> ''");

            return this;
        }

        public Criteria andAttachFilePathIsEmpty() {
            addCriterion("(" + IProductIssueAttachDAO.AttachFilePath +
                " is null OR " + IProductIssueAttachDAO.AttachFilePath +
                " = '')");

            return this;
        }

        public Criteria andAttachFilePathEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.AttachFilePath + " = ", value,
                "attachFilePath");

            return this;
        }

        public Criteria andAttachFilePathEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.AttachFilePath);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAttachFilePathEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.AttachFilePath + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAttachFilePathNotEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.AttachFilePath + " <>", value,
                "attachFilePath");

            return this;
        }

        public Criteria andAttachFilePathNotEqualToOrIsNull(String value) {
            addCriterion(IProductIssueAttachDAO.AttachFilePath +
                " is null OR " + IProductIssueAttachDAO.AttachFilePath + " <>",
                value, "attachFilePath");

            return this;
        }

        public Criteria andAttachFilePathNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.AttachFilePath);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAttachFilePathNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.AttachFilePath + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAttachFilePathGreaterThan(String value) {
            addCriterion(IProductIssueAttachDAO.AttachFilePath + " >", value,
                "attachFilePath");

            return this;
        }

        public Criteria andAttachFilePathGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.AttachFilePath);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAttachFilePathGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.AttachFilePath + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAttachFilePathGreaterThanOrEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.AttachFilePath + " >=", value,
                "attachFilePath");

            return this;
        }

        public Criteria andAttachFilePathGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.AttachFilePath);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAttachFilePathGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.AttachFilePath + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAttachFilePathLessThan(String value) {
            addCriterion(IProductIssueAttachDAO.AttachFilePath + " <", value,
                "attachFilePath");

            return this;
        }

        public Criteria andAttachFilePathLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.AttachFilePath);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAttachFilePathLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.AttachFilePath + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAttachFilePathLessThanOrEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.AttachFilePath + " <=", value,
                "attachFilePath");

            return this;
        }

        public Criteria andAttachFilePathLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.AttachFilePath);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAttachFilePathLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.AttachFilePath + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAttachFilePathLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueAttachDAO.AttachFilePath + " like",
                buffer.toString(), "attachFilePath");

            return this;
        }

        public Criteria andAttachFilePathNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueAttachDAO.AttachFilePath + " not like",
                buffer.toString(), "attachFilePath");

            return this;
        }

        public Criteria andAttachFilePathIn(List<String> values) {
            if (values.size() == 1) {
                return andAttachFilePathEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueAttachDAO.AttachFilePath + " in",
                    values, "attachFilePath");

                return this;
            }
        }

        public Criteria andAttachFilePathNotIn(List<String> values) {
            if (values.size() == 1) {
                return andAttachFilePathNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueAttachDAO.AttachFilePath + " not in",
                    values, "attachFilePath");

                return this;
            }
        }

        public Criteria andAttachFilePathIn(String[] values) {
            if (values.length == 1) {
                return andAttachFilePathEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.AttachFilePath + " in",
                    Arrays.asList(values), "attachFilePath");

                return this;
            }
        }

        public Criteria andAttachFilePathNotIn(String[] values) {
            if (values.length == 1) {
                return andAttachFilePathNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.AttachFilePath + " not in",
                    Arrays.asList(values), "attachFilePath");

                return this;
            }
        }

        public Criteria andAttachFilePathIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.AttachFilePath + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAttachFilePathNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.AttachFilePath + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAttachFilePathBetween(String value1, String value2) {
            addCriterion(IProductIssueAttachDAO.AttachFilePath + " between",
                value1, value2, "attachFilePath");

            return this;
        }

        public Criteria andAttachFilePathNotBetween(String value1, String value2) {
            addCriterion(IProductIssueAttachDAO.AttachFilePath +
                " not between", value1, value2, "attachFilePath");

            return this;
        }

        public Criteria andUploadTimeIsNull() {
            addCriterion(IProductIssueAttachDAO.UploadTime + " is null");

            return this;
        }

        public Criteria andUploadTimeIsNotNull() {
            addCriterion(IProductIssueAttachDAO.UploadTime + " is not null");

            return this;
        }

        public Criteria andUploadTimeIsNotEmpty() {
            addCriterion(IProductIssueAttachDAO.UploadTime +
                " is not null AND " + IProductIssueAttachDAO.UploadTime +
                " <> ''");

            return this;
        }

        public Criteria andUploadTimeIsEmpty() {
            addCriterion("(" + IProductIssueAttachDAO.UploadTime +
                " is null OR " + IProductIssueAttachDAO.UploadTime + " = '')");

            return this;
        }

        public Criteria andUploadTimeEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueAttachDAO.UploadTime + " = ",
                value, "uploadTime");

            return this;
        }

        public Criteria andUploadTimeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadTime);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadTimeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadTime + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadTimeNotEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueAttachDAO.UploadTime + " <>",
                value, "uploadTime");

            return this;
        }

        public Criteria andUploadTimeNotEqualToOrIsNull(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueAttachDAO.UploadTime +
                " is null OR " + IProductIssueAttachDAO.UploadTime + " <>",
                value, "uploadTime");

            return this;
        }

        public Criteria andUploadTimeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadTime);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadTimeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadTime + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadTimeGreaterThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueAttachDAO.UploadTime + " >",
                value, "uploadTime");

            return this;
        }

        public Criteria andUploadTimeGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadTime);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadTimeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadTime + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadTimeGreaterThanOrEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueAttachDAO.UploadTime + " >=",
                value, "uploadTime");

            return this;
        }

        public Criteria andUploadTimeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadTime);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadTimeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadTime + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadTimeLessThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueAttachDAO.UploadTime + " <",
                value, "uploadTime");

            return this;
        }

        public Criteria andUploadTimeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadTime);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadTimeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadTime + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadTimeLessThanOrEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueAttachDAO.UploadTime + " <=",
                value, "uploadTime");

            return this;
        }

        public Criteria andUploadTimeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadTime);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadTimeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadTime + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadTimeIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andUploadTimeEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductIssueAttachDAO.UploadTime +
                    " in", values, "uploadTime");

                return this;
            }
        }

        public Criteria andUploadTimeNotIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andUploadTimeNotEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductIssueAttachDAO.UploadTime +
                    " not in", values, "uploadTime");

                return this;
            }
        }

        public Criteria andUploadTimeIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andUploadTimeEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductIssueAttachDAO.UploadTime +
                    " in", Arrays.asList(values), "uploadTime");

                return this;
            }
        }

        public Criteria andUploadTimeNotIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andUploadTimeNotEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductIssueAttachDAO.UploadTime +
                    " not in", Arrays.asList(values), "uploadTime");

                return this;
            }
        }

        public Criteria andUploadTimeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadTime + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadTimeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadTime + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadTimeBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductIssueAttachDAO.UploadTime +
                " between", value1, value2, "uploadTime");

            return this;
        }

        public Criteria andUploadTimeNotBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductIssueAttachDAO.UploadTime +
                " not between", value1, value2, "uploadTime");

            return this;
        }

        public Criteria andUploadUserIdIsNull() {
            addCriterion(IProductIssueAttachDAO.UploadUserId + " is null");

            return this;
        }

        public Criteria andUploadUserIdIsNotNull() {
            addCriterion(IProductIssueAttachDAO.UploadUserId + " is not null");

            return this;
        }

        public Criteria andUploadUserIdIsNotEmpty() {
            addCriterion(IProductIssueAttachDAO.UploadUserId +
                " is not null AND " + IProductIssueAttachDAO.UploadUserId +
                " <> ''");

            return this;
        }

        public Criteria andUploadUserIdIsEmpty() {
            addCriterion("(" + IProductIssueAttachDAO.UploadUserId +
                " is null OR " + IProductIssueAttachDAO.UploadUserId +
                " = '')");

            return this;
        }

        public Criteria andUploadUserIdEqualTo(long value) {
            return andUploadUserIdEqualTo(Long.valueOf(value));
        }

        public Criteria andUploadUserIdEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueAttachDAO.UploadUserId + " = ", value,
                "uploadUserId");

            return this;
        }

        public Criteria andUploadUserIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadUserId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadUserIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserId + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserIdNotEqualTo(long value) {
            return andUploadUserIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andUploadUserIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueAttachDAO.UploadUserId + " <>", value,
                "uploadUserId");

            return this;
        }

        public Criteria andUploadUserIdNotEqualToOrIsNull(long value) {
            return andUploadUserIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andUploadUserIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductIssueAttachDAO.UploadUserId + " is null OR " +
                IProductIssueAttachDAO.UploadUserId + " <>", value,
                "uploadUserId");

            return this;
        }

        public Criteria andUploadUserIdNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadUserId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadUserIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserId + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserIdGreaterThan(long value) {
            return andUploadUserIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andUploadUserIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductIssueAttachDAO.UploadUserId + " >", value,
                "uploadUserId");

            return this;
        }

        public Criteria andUploadUserIdGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadUserId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadUserIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserId + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserIdGreaterThanOrEqualTo(long value) {
            return andUploadUserIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andUploadUserIdGreaterThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductIssueAttachDAO.UploadUserId + " >=", value,
                "uploadUserId");

            return this;
        }

        public Criteria andUploadUserIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadUserId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadUserIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserId + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserIdLessThan(long value) {
            return andUploadUserIdLessThan(Long.valueOf(value));
        }

        public Criteria andUploadUserIdLessThan(java.lang.Long value) {
            addCriterion(IProductIssueAttachDAO.UploadUserId + " <", value,
                "uploadUserId");

            return this;
        }

        public Criteria andUploadUserIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadUserId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadUserIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserId + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserIdLessThanOrEqualTo(long value) {
            return andUploadUserIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andUploadUserIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueAttachDAO.UploadUserId + " <=", value,
                "uploadUserId");

            return this;
        }

        public Criteria andUploadUserIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadUserId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadUserIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserId + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserIdIn(long[] values) {
            if (values.length == 1) {
                return andUploadUserIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.UploadUserId + " in",
                    values, "uploadUserId");

                return this;
            }
        }

        public Criteria andUploadUserIdNotIn(long[] values) {
            if (values.length == 1) {
                return andUploadUserIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.UploadUserId + " not in",
                    values, "uploadUserId");

                return this;
            }
        }

        public Criteria andUploadUserIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andUploadUserIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueAttachDAO.UploadUserId + " in",
                    values, "uploadUserId");

                return this;
            }
        }

        public Criteria andUploadUserIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andUploadUserIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueAttachDAO.UploadUserId + " not in",
                    values, "uploadUserId");

                return this;
            }
        }

        public Criteria andUploadUserIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andUploadUserIdEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.UploadUserId + " in",
                    Arrays.asList(values), "uploadUserId");

                return this;
            }
        }

        public Criteria andUploadUserIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andUploadUserIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.UploadUserId + " not in",
                    Arrays.asList(values), "uploadUserId");

                return this;
            }
        }

        public Criteria andUploadUserIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserId + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserId + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserIdBetween(long value1, long value2) {
            addCriterion(IProductIssueAttachDAO.UploadUserId + " between",
                value1, value2, "uploadUserId");

            return this;
        }

        public Criteria andUploadUserIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueAttachDAO.UploadUserId + " between",
                value1, value2, "uploadUserId");

            return this;
        }

        public Criteria andUploadUserIdNotBetween(long value1, long value2) {
            addCriterion(IProductIssueAttachDAO.UploadUserId + " not between",
                value1, value2, "uploadUserId");

            return this;
        }

        public Criteria andUploadUserIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueAttachDAO.UploadUserId + " not between",
                value1, value2, "uploadUserId");

            return this;
        }

        public Criteria andStatusIsNull() {
            addCriterion(IProductIssueAttachDAO.Status + " is null");

            return this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion(IProductIssueAttachDAO.Status + " is not null");

            return this;
        }

        public Criteria andStatusIsNotEmpty() {
            addCriterion(IProductIssueAttachDAO.Status + " is not null AND " +
                IProductIssueAttachDAO.Status + " <> ''");

            return this;
        }

        public Criteria andStatusIsEmpty() {
            addCriterion("(" + IProductIssueAttachDAO.Status + " is null OR " +
                IProductIssueAttachDAO.Status + " = '')");

            return this;
        }

        public Criteria andStatusEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.Status + " = ", value, "status");

            return this;
        }

        public Criteria andStatusEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.Status);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Status + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusNotEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.Status + " <>", value, "status");

            return this;
        }

        public Criteria andStatusNotEqualToOrIsNull(String value) {
            addCriterion(IProductIssueAttachDAO.Status + " is null OR " +
                IProductIssueAttachDAO.Status + " <>", value, "status");

            return this;
        }

        public Criteria andStatusNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.Status);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Status + " <> ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusGreaterThan(String value) {
            addCriterion(IProductIssueAttachDAO.Status + " >", value, "status");

            return this;
        }

        public Criteria andStatusGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.Status);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Status + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.Status + " >=", value, "status");

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.Status);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Status + " >= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusLessThan(String value) {
            addCriterion(IProductIssueAttachDAO.Status + " <", value, "status");

            return this;
        }

        public Criteria andStatusLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.Status);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Status + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusLessThanOrEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.Status + " <=", value, "status");

            return this;
        }

        public Criteria andStatusLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.Status);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Status + " <= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueAttachDAO.Status + " like",
                buffer.toString(), "status");

            return this;
        }

        public Criteria andStatusNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueAttachDAO.Status + " not like",
                buffer.toString(), "status");

            return this;
        }

        public Criteria andStatusIn(List<String> values) {
            if (values.size() == 1) {
                return andStatusEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueAttachDAO.Status + " in", values,
                    "status");

                return this;
            }
        }

        public Criteria andStatusNotIn(List<String> values) {
            if (values.size() == 1) {
                return andStatusNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueAttachDAO.Status + " not in", values,
                    "status");

                return this;
            }
        }

        public Criteria andStatusIn(String[] values) {
            if (values.length == 1) {
                return andStatusEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.Status + " in",
                    Arrays.asList(values), "status");

                return this;
            }
        }

        public Criteria andStatusNotIn(String[] values) {
            if (values.length == 1) {
                return andStatusNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.Status + " not in",
                    Arrays.asList(values), "status");

                return this;
            }
        }

        public Criteria andStatusIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Status + " in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Status + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusBetween(String value1, String value2) {
            addCriterion(IProductIssueAttachDAO.Status + " between", value1,
                value2, "status");

            return this;
        }

        public Criteria andStatusNotBetween(String value1, String value2) {
            addCriterion(IProductIssueAttachDAO.Status + " not between",
                value1, value2, "status");

            return this;
        }

        public Criteria andRemarksIsNull() {
            addCriterion(IProductIssueAttachDAO.Remarks + " is null");

            return this;
        }

        public Criteria andRemarksIsNotNull() {
            addCriterion(IProductIssueAttachDAO.Remarks + " is not null");

            return this;
        }

        public Criteria andRemarksIsNotEmpty() {
            addCriterion(IProductIssueAttachDAO.Remarks + " is not null AND " +
                IProductIssueAttachDAO.Remarks + " <> ''");

            return this;
        }

        public Criteria andRemarksIsEmpty() {
            addCriterion("(" + IProductIssueAttachDAO.Remarks + " is null OR " +
                IProductIssueAttachDAO.Remarks + " = '')");

            return this;
        }

        public Criteria andRemarksEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.Remarks + " = ", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.Remarks);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Remarks + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksNotEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.Remarks + " <>", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksNotEqualToOrIsNull(String value) {
            addCriterion(IProductIssueAttachDAO.Remarks + " is null OR " +
                IProductIssueAttachDAO.Remarks + " <>", value, "remarks");

            return this;
        }

        public Criteria andRemarksNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.Remarks);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Remarks + " <> ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksGreaterThan(String value) {
            addCriterion(IProductIssueAttachDAO.Remarks + " >", value, "remarks");

            return this;
        }

        public Criteria andRemarksGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.Remarks);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Remarks + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.Remarks + " >=", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.Remarks);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Remarks + " >= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksLessThan(String value) {
            addCriterion(IProductIssueAttachDAO.Remarks + " <", value, "remarks");

            return this;
        }

        public Criteria andRemarksLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.Remarks);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Remarks + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksLessThanOrEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.Remarks + " <=", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.Remarks);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Remarks + " <= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueAttachDAO.Remarks + " like",
                buffer.toString(), "remarks");

            return this;
        }

        public Criteria andRemarksNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueAttachDAO.Remarks + " not like",
                buffer.toString(), "remarks");

            return this;
        }

        public Criteria andRemarksIn(List<String> values) {
            if (values.size() == 1) {
                return andRemarksEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueAttachDAO.Remarks + " in", values,
                    "remarks");

                return this;
            }
        }

        public Criteria andRemarksNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRemarksNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueAttachDAO.Remarks + " not in",
                    values, "remarks");

                return this;
            }
        }

        public Criteria andRemarksIn(String[] values) {
            if (values.length == 1) {
                return andRemarksEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.Remarks + " in",
                    Arrays.asList(values), "remarks");

                return this;
            }
        }

        public Criteria andRemarksNotIn(String[] values) {
            if (values.length == 1) {
                return andRemarksNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.Remarks + " not in",
                    Arrays.asList(values), "remarks");

                return this;
            }
        }

        public Criteria andRemarksIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Remarks + " in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.Remarks + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksBetween(String value1, String value2) {
            addCriterion(IProductIssueAttachDAO.Remarks + " between", value1,
                value2, "remarks");

            return this;
        }

        public Criteria andRemarksNotBetween(String value1, String value2) {
            addCriterion(IProductIssueAttachDAO.Remarks + " not between",
                value1, value2, "remarks");

            return this;
        }

        public Criteria andUploadUserNameIsNull() {
            addCriterion(IProductIssueAttachDAO.UploadUserName + " is null");

            return this;
        }

        public Criteria andUploadUserNameIsNotNull() {
            addCriterion(IProductIssueAttachDAO.UploadUserName +
                " is not null");

            return this;
        }

        public Criteria andUploadUserNameIsNotEmpty() {
            addCriterion(IProductIssueAttachDAO.UploadUserName +
                " is not null AND " + IProductIssueAttachDAO.UploadUserName +
                " <> ''");

            return this;
        }

        public Criteria andUploadUserNameIsEmpty() {
            addCriterion("(" + IProductIssueAttachDAO.UploadUserName +
                " is null OR " + IProductIssueAttachDAO.UploadUserName +
                " = '')");

            return this;
        }

        public Criteria andUploadUserNameEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.UploadUserName + " = ", value,
                "uploadUserName");

            return this;
        }

        public Criteria andUploadUserNameEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadUserName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadUserNameEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserName + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserNameNotEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.UploadUserName + " <>", value,
                "uploadUserName");

            return this;
        }

        public Criteria andUploadUserNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductIssueAttachDAO.UploadUserName +
                " is null OR " + IProductIssueAttachDAO.UploadUserName + " <>",
                value, "uploadUserName");

            return this;
        }

        public Criteria andUploadUserNameNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadUserName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadUserNameNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserName + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserNameGreaterThan(String value) {
            addCriterion(IProductIssueAttachDAO.UploadUserName + " >", value,
                "uploadUserName");

            return this;
        }

        public Criteria andUploadUserNameGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadUserName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadUserNameGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserName + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.UploadUserName + " >=", value,
                "uploadUserName");

            return this;
        }

        public Criteria andUploadUserNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadUserName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadUserNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserName + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserNameLessThan(String value) {
            addCriterion(IProductIssueAttachDAO.UploadUserName + " <", value,
                "uploadUserName");

            return this;
        }

        public Criteria andUploadUserNameLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadUserName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadUserNameLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserName + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserNameLessThanOrEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.UploadUserName + " <=", value,
                "uploadUserName");

            return this;
        }

        public Criteria andUploadUserNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadUserName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadUserNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserName + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueAttachDAO.UploadUserName + " like",
                buffer.toString(), "uploadUserName");

            return this;
        }

        public Criteria andUploadUserNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueAttachDAO.UploadUserName + " not like",
                buffer.toString(), "uploadUserName");

            return this;
        }

        public Criteria andUploadUserNameIn(List<String> values) {
            if (values.size() == 1) {
                return andUploadUserNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueAttachDAO.UploadUserName + " in",
                    values, "uploadUserName");

                return this;
            }
        }

        public Criteria andUploadUserNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andUploadUserNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueAttachDAO.UploadUserName + " not in",
                    values, "uploadUserName");

                return this;
            }
        }

        public Criteria andUploadUserNameIn(String[] values) {
            if (values.length == 1) {
                return andUploadUserNameEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.UploadUserName + " in",
                    Arrays.asList(values), "uploadUserName");

                return this;
            }
        }

        public Criteria andUploadUserNameNotIn(String[] values) {
            if (values.length == 1) {
                return andUploadUserNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.UploadUserName + " not in",
                    Arrays.asList(values), "uploadUserName");

                return this;
            }
        }

        public Criteria andUploadUserNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserName + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserName + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserNameBetween(String value1, String value2) {
            addCriterion(IProductIssueAttachDAO.UploadUserName + " between",
                value1, value2, "uploadUserName");

            return this;
        }

        public Criteria andUploadUserNameNotBetween(String value1, String value2) {
            addCriterion(IProductIssueAttachDAO.UploadUserName +
                " not between", value1, value2, "uploadUserName");

            return this;
        }

        public Criteria andUploadUserPhotoIsNull() {
            addCriterion(IProductIssueAttachDAO.UploadUserPhoto + " is null");

            return this;
        }

        public Criteria andUploadUserPhotoIsNotNull() {
            addCriterion(IProductIssueAttachDAO.UploadUserPhoto +
                " is not null");

            return this;
        }

        public Criteria andUploadUserPhotoIsNotEmpty() {
            addCriterion(IProductIssueAttachDAO.UploadUserPhoto +
                " is not null AND " + IProductIssueAttachDAO.UploadUserPhoto +
                " <> ''");

            return this;
        }

        public Criteria andUploadUserPhotoIsEmpty() {
            addCriterion("(" + IProductIssueAttachDAO.UploadUserPhoto +
                " is null OR " + IProductIssueAttachDAO.UploadUserPhoto +
                " = '')");

            return this;
        }

        public Criteria andUploadUserPhotoEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.UploadUserPhoto + " = ", value,
                "uploadUserPhoto");

            return this;
        }

        public Criteria andUploadUserPhotoEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadUserPhoto);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadUserPhotoEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserPhoto + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserPhotoNotEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.UploadUserPhoto + " <>", value,
                "uploadUserPhoto");

            return this;
        }

        public Criteria andUploadUserPhotoNotEqualToOrIsNull(String value) {
            addCriterion(IProductIssueAttachDAO.UploadUserPhoto +
                " is null OR " + IProductIssueAttachDAO.UploadUserPhoto +
                " <>", value, "uploadUserPhoto");

            return this;
        }

        public Criteria andUploadUserPhotoNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadUserPhoto);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadUserPhotoNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserPhoto + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserPhotoGreaterThan(String value) {
            addCriterion(IProductIssueAttachDAO.UploadUserPhoto + " >", value,
                "uploadUserPhoto");

            return this;
        }

        public Criteria andUploadUserPhotoGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadUserPhoto);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadUserPhotoGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserPhoto + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserPhotoGreaterThanOrEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.UploadUserPhoto + " >=", value,
                "uploadUserPhoto");

            return this;
        }

        public Criteria andUploadUserPhotoGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadUserPhoto);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadUserPhotoGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserPhoto + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserPhotoLessThan(String value) {
            addCriterion(IProductIssueAttachDAO.UploadUserPhoto + " <", value,
                "uploadUserPhoto");

            return this;
        }

        public Criteria andUploadUserPhotoLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadUserPhoto);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadUserPhotoLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserPhoto + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserPhotoLessThanOrEqualTo(String value) {
            addCriterion(IProductIssueAttachDAO.UploadUserPhoto + " <=", value,
                "uploadUserPhoto");

            return this;
        }

        public Criteria andUploadUserPhotoLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueAttachDAO.UploadUserPhoto);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andUploadUserPhotoLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserPhoto + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserPhotoLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueAttachDAO.UploadUserPhoto + " like",
                buffer.toString(), "uploadUserPhoto");

            return this;
        }

        public Criteria andUploadUserPhotoNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueAttachDAO.UploadUserPhoto + " not like",
                buffer.toString(), "uploadUserPhoto");

            return this;
        }

        public Criteria andUploadUserPhotoIn(List<String> values) {
            if (values.size() == 1) {
                return andUploadUserPhotoEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueAttachDAO.UploadUserPhoto + " in",
                    values, "uploadUserPhoto");

                return this;
            }
        }

        public Criteria andUploadUserPhotoNotIn(List<String> values) {
            if (values.size() == 1) {
                return andUploadUserPhotoNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueAttachDAO.UploadUserPhoto +
                    " not in", values, "uploadUserPhoto");

                return this;
            }
        }

        public Criteria andUploadUserPhotoIn(String[] values) {
            if (values.length == 1) {
                return andUploadUserPhotoEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.UploadUserPhoto + " in",
                    Arrays.asList(values), "uploadUserPhoto");

                return this;
            }
        }

        public Criteria andUploadUserPhotoNotIn(String[] values) {
            if (values.length == 1) {
                return andUploadUserPhotoNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueAttachDAO.UploadUserPhoto +
                    " not in", Arrays.asList(values), "uploadUserPhoto");

                return this;
            }
        }

        public Criteria andUploadUserPhotoIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserPhoto + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserPhotoNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueAttachDAO.UploadUserPhoto + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andUploadUserPhotoBetween(String value1, String value2) {
            addCriterion(IProductIssueAttachDAO.UploadUserPhoto + " between",
                value1, value2, "uploadUserPhoto");

            return this;
        }

        public Criteria andUploadUserPhotoNotBetween(String value1,
            String value2) {
            addCriterion(IProductIssueAttachDAO.UploadUserPhoto +
                " not between", value1, value2, "uploadUserPhoto");

            return this;
        }
    }
}
